Imperturbable et quasiment un an jour pour jour après la publication de la version 5.14, Perl vient de sortir en version 5.16.0. Rappelons que Perl, créé en 1987 par Larry Wall, est un langage interprété, polyvalent, et particulièrement adapté au traitement et à la manipulation de fichiers texte, le tout sous double licence GPLv2 et Artistic.
Je vous invite à consulter le perldelta de la 5.16.0 pour la liste détaillée des changements.
Nouveautés et améliorations
Perl 5.16 préserve la compatibilité ascendante dans ses nouveautés et améliorations notables :
- La déclaration de version
use
a été retravaillée et désactive un ancien "bundle" de fonctionnalités avant d'en activer une nouvelle ; - un opérateur
eval
plus cohérent au niveau de l'encodage ; - une fonction
substr
complètement rénovée ; - un nouveau token
__SUB__
référençant la sous-routine actuelle afin de faciliter la mise en œuvre de la récursivité ; - Toujours plus d'améliorations sur la prise en charge d'Unicode 6.1 ;
- Ajouts dans le debugger (nouvelles commandes
enable
etdisable
pour les breakpoints, nouvelles options dans les commandes de tracet
et de breakpointsb
, etc.) - etc.
Statistiques
Selon l'équipe de développement, côté statistiques, cette version de Perl implique des changements au niveau d'environ 590 000 lignes dans 2 500 fichiers par 139 auteurs !
Feuille de route
Pas de surprise, la prochaine version mineure, Perl 5.16.1, corrigeant les bugs importants de cette version est attendue autour du 20 juin prochain. La branche de développement 5.17, prélude à la prochaine version majeure 5.18 prévue en mai 2013 (là aussi sans surprise), devrait être ouverte dans la foulée de la 5.16.1 avec des sorties tous les 20 du mois (toujours pas de surprise).
Le perldelta, toujours lui, nous apprend aussi qu'un certain nombre de modules devraient être dépréciées et ne plus être distribués avec Perl par défaut (mais ils seront toujours accessibles via le CPAN). On parle de CPANPLUS, Filter::Simple, PerlIO::mmap, Pod::LaTeX, Pod::Parser, SelfLoader, Text::Soundex et Thread.pm. Parmi les plates-formes qui n'ont plus de développeur et qui devraient être abandonnées dès la phase de développement 5.17, il y a BeOS et djgpp parmi les plus connus, mais aussi dgux, EPOC, MPE/iX, Rhapsody, UTS, ou encore VM/ESA.
Aller plus loin
- Site officiel de Perl (88 clics)
- L'annonce de Perl 5.16.0 (63 clics)
- Perldelta : la liste détaillée de tous les changements (85 clics)
- Téléchargement de Perl 5.16 sur MetaCPAN (44 clics)
- Les Mongueurs de Perl (113 clics)
# Frozen Bubble
Posté par ʭ ☯ . Évalué à 2.
L'occasion de se rappeler que Perl permet aussi de programmer des jeux : frozen-bubble est en Perl intégral.
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
[^] # Re: Frozen Bubble
Posté par Guillaume Rousse (site web personnel) . Évalué à 10.
"intégral" comme dans "utiliser un binding sur une bibliothèque native (SDL)", bien sur :)
# Nouveautés
Posté par barmic . Évalué à 4.
La version 5.10 et 5.12 ou 5.14 avaient apportés de grosses nouveautés (given/when, say, etc), il n'y a pas eu dans cette version de backport depuis Perl6.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Nouveautés
Posté par Sytoka Modon (site web personnel) . Évalué à 3. Dernière modification le 24 mai 2012 à 11:39.
Il me semble que c'est plus un travail de fond :
L'objectif me semble clairement le long terme. L'avantage est de pouvoir ajouter des choses de manière plus modulaire donc moins risquée et plus stable. Les ajouts venant de Perl6 ne sont pas tous géniaux (j'ai lus plein de truc comme quoi l'opération ~~ était mal définis par exemple, il me semble que "given" pose aussi des soucis…).
Bref, une base solide pour la suite ;-)
[^] # Re: Nouveautés
Posté par barmic . Évalué à 2.
Je comprends bien. C'est juste qu'en tant que grand enfant devant mon jouet, j'ai tendance à vouloir être surpris et émerveillé par celui-ci :)
Oui leur implémentation en perl5 n'est pas aussi bien faite qu'en Perl6 (logique).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# Perl 6
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 6.
Et Perl 6, c'en est où ? Visiblement, ce projet lancé il y a quelque chose comme douze ans n'intéresse pas grand monde vu l'absence de nouvelles à ce sujet, mais savez-vous si c'est :
[^] # Re: Perl 6
Posté par ナイコ (site web personnel) . Évalué à 2.
[^] # Re: Perl 6
Posté par raum_schiff . Évalué à 5.
Ça avance à son rythme, vu le nombre développeurs.
Pour le compilo le plus avancé à l'heure actuelle voir ici: http://rakudo.org/
Il y a une pseudo roadmap ici: ClickMe
Rakudo est utilisable à l'heure actuelle ( Pas en prod … faut pas rêver! ).
Sa lenteur reste un gros problème, qui se résorbe néanmoins à chaque release.
Je suit un peu (de loin) son évolution, ça a tendance à se bonifier release en release, donc: wait and see (and code).
Bref, c'est cool à regarder "pousser" d'autant plus que les membres du projet sont sympas et pas prise de tête.
Ha ! L'informatique en sandales :)
[^] # Re: Perl 6
Posté par barmic . Évalué à 7.
Sachant que depuis janvier ils sortent une version par mois.
Je crois que le projet est vraiment bien avancé, ils se concentrent sur les corrections de bug et amélioration de performance. Donc pour les « early adopters » c'est maintenant.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Perl 6
Posté par nomorsad . Évalué à 1.
Même s'ils portent des nom similaire, Perl6 est tellement éloigné de Perl que je les considère simplement comme des langage différents.
Je serais donc d'avis de ne plus lancer les troll Perl6 sur des dépêches Perl….
[^] # Re: Perl 6
Posté par barmic . Évalué à 4.
Je ne comprends vraiment pas ça. De ce que j'en ai vu Perl6 c'est du perl en mieux, d'ailleurs des fonctionnalités de perl6 ont étaient backportées dans perl5.
J'ai l'impression que cette idée que perl6 n'est pas le même langage est juste pour contrer les trolls sur le temps qu'il met à sortir.
Personnellement je m'en fou qu'il mettent du temps à sortir, on a déjà de quoi s'amuser avec Perl5 pourquoi languir perl6 ? Il sera mieux mais autant essayer de ne pas se prendre des insultes comme se sont joyeusement pris les développeurs de KDE et de Gnome en sortant quelque chose de mal fini, non ?
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Perl 6
Posté par rogo . Évalué à 3.
Tout dépend de la perception de chacun. Pour moi, c'est un nouveau langage, inspiré de Perl5.
Quelques exemples simples, extraits de Perl5 to Perl6 :
Des exemples plus complexes :
[^] # Re: Perl 6
Posté par spider-mario . Évalué à 1.
À noter :
<<
et>>
sont juste des équivalents ASCII pour«
et»
. Ainsi, le>>+>>
peut se récrire plus joliment en»+»
.# Lisibilité de Perl (je sais on est que Jeudi)
Posté par Christophe B. (site web personnel) . Évalué à 7.
Bonjour,
Je suis heureux de voir un langage comme Perl traverser les siècles :)
Il s'agit du premier langage libre que j'ai mis en production, avec succès
car certaines routines ont tenu de 1995 à 2010 sans aucunes modifications ! (je vous laisse calculer le nombre de version W$ :) )
maintenant j'ai tout repris en python …
Mais j'ai toujours un vieux serveur TCP qui sert des terminaux texte en exploitation
et me fais râler a chaque modification (heureusement ca devient rare) il me faut au moins 2 jours pour re lire mon code (écrit en 2005) et 1/2 journée pour écrire la modification
même si je suis passé de AIX 5.3 (perl 5.5 puis 5.8) à Centos (perl 5.10) avec comme unique modification le chemin de la socket MySQL !
un exemple :
@{$self->{NUMBO}}[$self->{BOBINE_MODIF}-1] = $bobine;
Je dois vouloir modifier la valeur d'un élément de tableau contenu dans un objet …
Aussi je demande aux amateurs de Perl si l’écriture Objet en perl est elle toujours aussi illisible ? ou c'est moi qui devrais revoir ma copie ?
A+
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par raum_schiff . Évalué à 0.
Non, ça n'a HELAS presque pas changé, à moins d'utiliser le module Moose
En fait, c'est la syntaxe objet qui m'a fait lentement quitter Perl (en dehors de la programmation système).
Note:
Perl6 corrige assez bien le OOM de Perl5 (Moose et P6 s'inspirant l'un de l'autre).
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par barmic . Évalué à 5.
C'est marrant. D'un coté on félicite perl pour maintenir une compatibilité ascendante importante (pour un langage dynamique), de l'autre on est pas content qu'il faille passer par un module pour bénéficier des nouveautés du langage.
Sans être un élément central, modifier le modèle objet de base de perl aurait à mon avi de lourdes conséquence sur la compatibilité.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par raum_schiff . Évalué à 3.
… voire même irréparables !
J'ai jamais eut à me plaindre de Perl5 !
C'est juste une question d'emploi ensuite.
Pour formater des logs, parser des fichiers pour export DB, faire des scripts de dépannage, bricoller un proxy, etc… Perl5 c'est plus qu'utile.
Pour du Dev Web, OOM+Framework deviennent obligatoires: j'ai bien essayé de me mettre à Catalyst+Moose …
Mais bon, même avec Moose ça reste à coucher dehors, bien loi du K.I.S.S … :(
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par spider-mario . Évalué à 2.
Et Mojolicious ?
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par Christophe B. (site web personnel) . Évalué à 4.
Tu as raison, on veut l'inverse et son contraire mais il s'agit en faite d'une geekerie
ou d'un traumatisme neuronal profond …
J'adorais coder en perl, simple, concis, puissant, permet de faire des choses incroyables
en 2 lignes.
C'est grace a Perl que j'ai VRAIMENT eu le declic sur la programmation objet
(voir l'instruction bless ou vous pouvez bénir une variable …)
J'ai réalisé plein de choses avec Perl et qui tourne depuis longtemps …
Perl c'est super mangez en c'est bon pour ce que vous avez …
Mais
Mais
Mais (il est la le traumatisme)
Mais
Relire son propre code après 6 mois … et on se pose des questions sur son état mental du moment …
C'est illisible (vous pouvez me lancer les pierres virtuelles que vous voulez je n'en demordrais pas ) et donc difficile a maintenir et donc … pénible
Perl m'a montré mes limites peut être …
Merci pour la psychanalyse … je vous dois combien ?
heureusement ya python ! lisible concis etc …
Et pour conclure pour ceux qui continuent a coder en Perl sans passer par la case médicamenteuse qui calme … respect
A+
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par leoboy . Évalué à 3.
Pour ceux qui veulent écrire du code Perl propre, maintenable, commenté et compréhensible 14 ans plus tard, il y a le très bon ouvrage De l'art de programmer en Perl (http://www.eyrolles.com/Informatique/Livre/de-l-art-de-programmer-en-perl-9782841773695), qui montre que l'on n'écrit du Perl crade que si l'on a envie.
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par nomorsad . Évalué à 2.
Ce bouquin était ma bible et devrait être posé sur tous les bureaux des programmeurs Perl.
Car c'est plus qu'une liste de bonne pratique, c'est un sous-ensemble du langage Perl, qui se débarrasse des bizarreries et des obsolescence du langage.
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par barmic . Évalué à 5.
Je dirais plutôt que l'on écris pour écrire du code propre il faut savoir comment faire.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Lisibilité de Perl (je sais on est que Jeudi)
Posté par glopglop2 . Évalué à 2.
ça s'écrit comme ça depuis très longtemps (au moins 10ans) :
$self->{NUMBO}[$self->{BOBINE_MODIF}-1] = $bobine;
sinon la version précédente a introduit des simplifications, comme celui là :
avant : push @{$self->{NUMBO}}, $something;
maintenant : push $self->{NUMBO}, $something;
bien sûr on pouvait aussi utiliser une autre variable pour éviter le @{} :
my $array=$self->{NUMBO}
push @$array, $something;
# Et pour le web ?
Posté par mornik . Évalué à 2.
Avant d'attaquer le sujet, je tenais à dire que je voulais piquer le morceau de titre relatif au jeudi.
Sinon, j'ai une vrai question. Qu'apporte de plus les langages python/ruby/php pour programmer du web, vu l’essor des techno autour du javascript ?
Pourquoi peux de "bruit" sur le net sur la programmation web en perl ? Est-ce "seulement" les framework web (django/RoR/symphony) qui justifie cette absence ?
[^] # Re: Et pour le web ?
Posté par raum_schiff . Évalué à 2.
A moins de d'utiliser APE ou autres, il sera toujours utile de scripter côté serveur.
Toujours un question d'utilité, si tu as déjà la totalité de tes scripts serveur en $to_langage_de_dev tu va le guarder pour faire du web.
Y'a des frameworks:
* Dancer
* Catalyst
* Embperl
Pour ceux que je connais et ai testé.
Le problème pour Perl5 sur le web c'est l'explosion des MVC ses dernières années.
Seul "Catalyst" a pût suivre dans le genre (cf post du dessus) mais au prix d'une complexité grandissante (trop à mon goût).
[^] # Re: Et pour le web ?
Posté par barmic . Évalué à 1.
Tu en a un paquet en perl aussi : catalyst, mojolicius, dancer, jifty,…
Mais je ne sais pas ce qu'ils valent faces aux autres.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Et pour le web ?
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
Pour les jeunes, le Perl est has-been… et donc les propos dessus sont rapidement tournés en dérision. C'est un peu pareil avec Fortran d'ailleurs ;-)
Comme un post plus haut, on voit que l'idée qu'en Perl il faut construire ses objets à la main à la vie dure… Il y a tout plein de framework qui vont bien et qui sont clair.
Je fais (rarement) du Python mais je préfère Perl. Dès que j'ai un module Perl, je fais un man sur celui-ci et j'ai une doc correcte la plupart du temps. Je ne retrouve pas cela avec Python. Idem avec php.
Je me suis amusé à faire un petit programme utilisant la libcoro, c'est une manière de faire de l'asynchrone sans passer par l'usine à gaz POE, du pur bonheur.
Bref, il y a aussi des effets de mode.
[^] # Re: Et pour le web ?
Posté par Christophe B. (site web personnel) . Évalué à 3.
Nobody's Perfect !
Perl et le CPAN et tout ses modules super documentés => GEANT
C'est perl aussi qui a lancé la mode des livres style CookBook … Perl en Action
a l'origine de PLEAC
L'humour présent dans les livres ( extrait … "à réserver aux amateurs de soirées cuirs et chaînes" )
Perl continue d'être un exemple a suivre
# Citation du jour
Posté par claudex . Évalué à 10.
If programming languages where religions
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.